package com.spdzen.support;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

/**
 * 字符串处理
 * 
 * @author accontwcx@qq.com
 */
public class SimpleStringUtils {
	public static final String DEFAULT_SPLIT = ",";
	
	/**
	 * 把多个整数拼接的字符串转成List<Integer>，拼接字符为{,}
	 * @param str
	 * @return
	 */
	public static List<Integer> toIntegerList(String str) {
		return toIntegerList(str, DEFAULT_SPLIT);
	}
	
	/**
	 * 把多个整数拼接的字符串转成List<Integer>
	 * @param str
	 * @param split 拼接字符
	 * @return
	 */
	public static List<Integer> toIntegerList(String str, String split) {
		List<Integer> list = new ArrayList<>();
		
		if(StringUtils.isBlank(str) || StringUtils.isBlank(split)){
			return list;
		}
		
		String[] parts = str.split(split);
		for(String part : parts) {
			try {
				list.add(Integer.parseInt(part));
			} catch (Exception e) {
			}
		}
		
		return list;
	}
	
	/**
	 * 把多个整数拼接的字符串转成List<Long>，拼接字符为{,}
	 * @param str
	 * @return
	 */
	public static List<Long> toLongList(String str) {
		return toLongList(str, DEFAULT_SPLIT);
	}
	
	/**
	 * 把多个整数拼接的字符串转成List<Long>
	 * @param str
	 * @param split 拼接字符
	 * @return
	 */
	public static List<Long> toLongList(String str, String split) {
		List<Long> list = new ArrayList<>();
		
		if(StringUtils.isBlank(str) || StringUtils.isBlank(split)){
			return list;
		}
		
		String[] parts = str.split(split);
		for(String part : parts) {
			try {
				list.add(Long.parseLong(part));
			} catch (Exception e) {
			}
		}
		
		return list;
	}
	
	/**
	 * 把多个数值拼接的字符串转成List<Double>，拼接字符为{,}
	 * @param str
	 * @return
	 */
	public static List<Double> toDoubleList(String str) {
		return toDoubleList(str, DEFAULT_SPLIT);
	}
	
	/**
	 * 把多个数值拼接的字符串转成List<Double>
	 * @param str
	 * @param split 拼接字符
	 * @return
	 */
	public static List<Double> toDoubleList(String str, String split) {
		List<Double> list = new ArrayList<>();
		
		if(StringUtils.isBlank(str) || StringUtils.isBlank(split)){
			return list;
		}
		
		String[] parts = str.split(split);
		for(String part : parts) {
			try {
				list.add(Double.parseDouble(part));
			} catch (Exception e) {
			}
		}
		
		return list;
	}
	
	/**
	 * 把字符串拼接成SQL的like格式
	 * @param value
	 * @return
	 */
	public static String likeSqlString(String value) {		
		if(StringUtils.isNotBlank(value)) {
			StringBuilder sb = new StringBuilder();
			sb.append("%").append(value.trim()).append("%");			
			return sb.toString();
		}
		
		return "";
	}
}
